Systems and methods for automatic white balance

ABSTRACT

Aspects of the present disclosure relate to systems and methods for performing automatic white balance (AWB). An example device may include a memory and a processor coupled to the memory. The processor may be configured to receive a first image of a scene, measure a first illuminant of the first received image, compare the first illuminant and a first illuminant value, determine the scene is changing between the first received image and a previous image based on the comparison, adjust a first AWB convergence rate to a second AWB convergence rate in response to determining the scene is changing, and converge from a first balancing factor to a second balancing factor for one or more white balance operations based on the second AWB convergence rate.

CROSS-REFERENCE TO RELATED APPLICATIONS

This patent application claims priority to India Foreign PatentApplication No. 201841005011 entitled “SYSTEMS AND METHODS FOR AUTOMATICWHITE BALANCE” filed on Feb. 9, 2018, which is assigned to the assigneehereof. The disclosure of the prior application is considered part ofand is incorporated by reference in this patent application.

TECHNICAL FIELD

This disclosure relates generally to systems and methods for imagecapture devices, and specifically to systems and methods for automaticwhite balance.

BACKGROUND

The color temperature of light in a scene may add a color cast to acaptured image (with the image appearing tinted or having an overallcolor tone). Additionally, different light sources for a scene may causedifferent portions of an image to have different color casts. Forexample, a camera flash may add a blue or cool color cast/overall tone,incandescent lighting may add a yellow or warm color cast/overall tone,and outdoor lighting at different times of day and different cloud covermay add a variety of color casts/overall tones.

Devices (such as digital cameras or other devices configured to capturea digital image) automatically may perform white or color balancing.Automatic white balance (AWB) is a process of estimating a color cast ofan image based on portions of the image that should be displayed asneutral colors (such as white or shades of gray). A device may attemptto correct the color tone (remove the color cast) of an image whendetermined that portions of the image that should be neutral colors arenot captured as neutral colors.

SUMMARY

This Summary is provided to introduce in a simplified form a selectionof concepts that are further described below in the DetailedDescription. This Summary is not intended to identify key features oressential features of the claimed subject matter, nor is it intended tolimit the scope of the claimed subject matter.

Aspects of the present disclosure relate to systems and methods forperforming automatic white balance (AWB). An example device may includea memory and a processor coupled to the memory. The processor may beconfigured to receive a first image of a scene, measure a firstilluminant of the first received image, compare the first illuminant anda first illuminant value, determine the scene is changing between thefirst received image and a previous image based on the comparison,adjust a first AWB convergence rate to a second AWB convergence rate inresponse to determining the scene is changing, and converge from a firstbalancing factor to a second balancing factor for one or more whitebalance operations based on the second AWB convergence rate. In anotherexample, a method is disclosed. The example method includes receiving afirst image of a scene, measuring a first illuminant of the firstreceived image, comparing the first illuminant and a first illuminantvalue, determining the scene is changing between the first receivedimage and a previous image based on the comparison, adjusting a firstAWB convergence rate to a second AWB convergence rate in response todetermining the scene is changing, and converging from a first balancingfactor to a second balancing factor for one or more white balanceoperations based on the second AWB convergence rate.

In a further example, a non-transitory computer-readable medium isdisclosed. The non-transitory computer-readable medium may storeinstructions that, when executed by a processor, cause a device toreceive a first image of a scene, measure a first illuminant of thefirst received image, compare the first illuminant and a firstilluminant value, determine the scene is changing between the firstreceived image and a previous image based on the comparison, adjust afirst AWB convergence rate to a second AWB convergence rate in responseto determining the scene is changing, and converge from a firstbalancing factor to a second balancing factor for one or more whitebalance operations based on the second AWB convergence rate.

In another example, a device is disclosed. The device includes means forreceiving a first image of a scene, means for measuring a firstilluminant of the first received image, means for comparing the firstilluminant and a first illuminant value, means for determining the sceneis changing between the first received image and a previous image basedon the comparison, means for adjusting a first AWB convergence rate to asecond AWB convergence rate in response to determining the scene ischanging, and means for converging from a first balancing factor to asecond balancing factor for one or more white balance operations basedon the second AWB convergence rate.

BRIEF DESCRIPTION OF THE DRAWINGS

Aspects of the present disclosure are illustrated by way of example, andnot by way of limitation, in the figures of the accompanying drawingsand in which like reference numerals refer to similar elements.

FIG. 1 is a block diagram of an example device for performing AWB.

FIG. 2 is an illustrative flow chart depicting an example operation forperforming AWB.

FIG. 3 is an illustrative flow chart depicting an example operation fordetecting a scene change.

FIG. 4 is an illustrative flow chart depicting an example operation fordetermining how long a scene is changing and when the scene is stable.

FIG. 5 is an illustrative flow chart depicting an example operation forselecting the convergence factor to be used in converging to newbalancing factors.

FIG. 6 depicts an example scene change with a low rate of scene changeand the scene becoming stable after the duration threshold.

FIG. 7 depicts an example scene change with a low rate of scene changeand the scene becoming stable before the duration threshold.

FIG. 8 depicts an example scene change with a high rate of scene changeand the scene becoming stable before the duration threshold.

FIG. 9 depicts an example scene change with a high rate of scene changeand the scene becoming stable after the duration threshold.

FIG. 10 is an illustrative flow chart depicting an example operation forperforming a white balance operation.

DETAILED DESCRIPTION

Aspects of the present disclosure may be used for performing AWB.Devices including or coupled to a camera (such as a smartphone, tablet,video security system, digital camera, or other suitable device) mayperform AWB to estimate a color cast of an image and/or determine acorrection for the color cast (which may be referred to as a color toneor color temperature of an image). The correction may be used by thedevice in capturing and processing the image during the image processingpipeline to correct the color tone. When the scene changes for thecamera, such as the camera being moved or objects entering the scene,the device may need to repeat performing AWB to estimate a new colorcast. For example, when a camera is moved from indoors to outdoors, thechange in ambient lighting may cause a different color cast. As aresult, AWB may be used to estimate a new color cast, which may be usedto determine a new correction to correct the color cast of an imagecaptured with the different ambient light.

A problem with repeating AWB operations is that the operations may causedelays in capturing and processing images requested by a user (such as auser clicking a shutter button or otherwise requesting an imagecapture). For example, a device may not capture and process an image asrequested by the user while the device is performing AWB. As a result,the user must wait for an AWB operation to complete before the devicemay capture the requested image. Additionally, a device may provide animage preview to the user. The image preview may be a stream of capturedimages that are not fully processed before being displayed to quicklyprovide the user an indication of what the camera will capture for arequested image (including an indication of the colors). The imagepreview may be impacted by the AWB process. For example, the imagepreview may show fluctuations in flux or color cast as AWB is performed,which may confuse the user or otherwise prevent the user fromunderstanding what colors are to be captured in a requested image.Delaying a requested image capture or causing color fluctuations in animage preview may degrade the user experience.

A device may perform AWB to estimate a color cast and/or to determineone or more balancing factors to be used in correcting the color cast ofan image. For example, balancing factors may be for adjusting the red,blue and green (RGB) values for each pixel in a RGB space, may be foradjusting the chrominance values U and V of each pixel in a YUV (Y′UV)space, or may be for adjusting colors in other suitable color spaces.When the scene changes, such as the camera being moved or objectsentering the scene, the color temperature of the light illuminating thescene and being sensed by a camera sensor may change. For example, whenthe camera moves from indoors to outdoors, the color temperature of thelight may change from 3,000 Kelvin to 5,000 Kelvin. As a result, newbalancing factors may be needed to correct a different color cast as aresult of the different color temperature for the lighting.

If the scene change is temporary, such as passing by a window withbright outdoor light shining on the camera sensor and then quicklyceasing, the device may determine new balancing factors when outdoorlight (with a different color temperature and intensity) shines on thecamera sensor and again when outdoor light ceases to shine on the camerasensor. When outdoor light ceases to shine on the camera sensor, theoperations in determining new balancing factors may be performed butproduce balancing factors that are the same as the previous balancingfactors before passing the window. As a result, the additionaloperations when passing the window may cause a delay in capturing imageseven though the scene is similar before and after passing the window.

Further, the previous scene's measurements and the current scene'smeasurements both may be used in determining balancing factors, with thedevice recursively converging to new balancing factors. Conventionalconvergence is at a static rate irrespective of the magnitude of scenechange (such as the change in color temperature or intensity of thelight). As a result, large scene changes (such as large changes inambient light caused by moving the camera from indoors to outdoors inbright daylight) may cause longer operations in converging to newbalancing factors than smaller scene changes (such as smaller changes inambient light).

In some aspects of the present disclosure, a device may preventoperations in converging to new balancing factors from being performedfor temporary changes in the scene. In some further aspects of thepresent disclosure, the device may vary the rate of convergence to newbalancing factors, or otherwise adjust the convergence process. In thismanner, the device may compensate for temporary scene changes (such aspassing by a window) and compensate for the magnitude of scene change inconverging to new balancing factors for white balance operations.

In the following description, numerous specific details are set forth,such as examples of specific components, circuits, and processes toprovide a thorough understanding of the present disclosure. The term“coupled” as used herein means connected directly to or connectedthrough one or more intervening components or circuits. Also, in thefollowing description and for purposes of explanation, specificnomenclature is set forth to provide a thorough understanding of thepresent disclosure. However, it will be apparent to one skilled in theart that these specific details may not be required to practice theteachings disclosed herein. In other instances, well-known circuits anddevices are shown in block diagram form to avoid obscuring teachings ofthe present disclosure. Some portions of the detailed descriptions whichfollow are presented in terms of procedures, logic blocks, processingand other symbolic representations of operations on data bits within acomputer memory. In the present disclosure, a procedure, logic block,process, or the like, is conceived to be a self-consistent sequence ofsteps or instructions leading to a desired result. The steps are thoserequiring physical manipulations of physical quantities. Usually,although not necessarily, these quantities take the form of electricalor magnetic signals capable of being stored, transferred, combined,compared, and otherwise manipulated in a computer system.

It should be borne in mind, however, that all of these and similar termsare to be associated with the appropriate physical quantities and aremerely convenient labels applied to these quantities. Unlessspecifically stated otherwise as apparent from the followingdiscussions, it is appreciated that throughout the present application,discussions utilizing the terms such as “accessing,” “receiving,”“sending,” “using,” “selecting,” “determining,” “normalizing,”“multiplying,” “averaging,” “monitoring,” “comparing,” “applying,”“updating,” “measuring,” “deriving,” “settling” or the like, refer tothe actions and processes of a computer system, or similar electroniccomputing device, that manipulates and transforms data represented asphysical (electronic) quantities within the computer system's registersand memories into other data similarly represented as physicalquantities within the computer system memories or registers or othersuch information storage, transmission or display devices.

In the figures, a single block may be described as performing a functionor functions; however, in actual practice, the function or functionsperformed by that block may be performed in a single component or acrossmultiple components, and/or may be performed using hardware, usingsoftware, or using a combination of hardware and software. To clearlyillustrate this interchangeability of hardware and software, variousillustrative components, blocks, modules, circuits, and steps aredescribed below generally in terms of their functionality. Whether suchfunctionality is implemented as hardware or software depends upon theparticular application and design constraints imposed on the overallsystem. Skilled artisans may implement the described functionality invarying ways for each particular application, but such implementationdecisions should not be interpreted as causing a departure from thescope of the present disclosure. Also, the example devices may includecomponents other than those shown, including well-known components suchas a processor, memory and the like.

Aspects of the present disclosure are applicable to any suitableelectronic device having or coupled to a camera for capturing images orvideo (such as a security system with one or more cameras, smartphones,tablets, laptop computers, digital video and/or still cameras, webcameras, etc.). While described below with respect to a device having orcoupled to one camera, aspects of the present disclosure are applicableto devices having any number of cameras (including no cameras, where aseparate device is used for capturing images or video which are providedto the device), and are therefore not limited to devices having onecamera. Aspects of the present disclosure are applicable for capturingstill images as well as for capturing video, and may be implemented indevices having or coupled to cameras of different capabilities (such asa video camera or a still image camera).

The term “device” is not limited to one or a specific number of physicalobjects (such as one smartphone, one camera controller, one processingsystem and so on). As used herein, a device may be any electronic devicewith one or more parts that may implement at least some portions of thisdisclosure. While the below description and examples use the term“device” to describe various aspects of this disclosure, the term“device” is not limited to a specific configuration, type, or number ofobjects.

FIG. 1 is a block diagram of an example device 100 for performing AWB.The example device 100 may include or be coupled to a camera 102, aprocessor 104, a memory 106 storing instructions 108, and a cameracontroller 110. The device 100 optionally may include (or be coupled to)a display 114 and a number of input/output (I/O) components 116. Thedevice 100 may include additional features or components not shown. Forexample, a wireless interface, which may include a number oftransceivers and a baseband processor, may be included for a wirelesscommunication device. The device 100 may include or be coupled toadditional cameras other than the camera 102. The disclosure should notbe limited to any specific examples or illustrations for a device,including the example device 100.

The camera 102 may be capable of capturing individual image frames (suchas still images) and/or capturing video (such as a succession ofcaptured image frames). The camera 102 may include a single camerasensor and camera lens, or be a dual camera module or any other suitablemodule with multiple camera sensors and lenses. The memory 106 may be anon-transient or non-transitory computer readable medium storingcomputer-executable instructions 108 to perform all or a portion of oneor more operations described in this disclosure. The device 100 may alsoinclude a power supply 118, which may be coupled to or integrated intothe device 100.

The processor 104 may be one or more suitable processors capable ofexecuting scripts or instructions of one or more software programs (suchas instructions 108) stored within the memory 106. In some aspects, theprocessor 104 may be one or more general purpose processors that executeinstructions 108 to cause the device 100 to perform any number offunctions or operations. In additional or alternative aspects, theprocessor 104 may include integrated circuits or other hardware toperform functions or operations without the use of software. While shownto be coupled to each other via the processor 104 in the example of FIG.1, the processor 104, the memory 106, the camera controller 110, theoptional display 114, and the optional I/O components 116 may be coupledto one another in various arrangements. For example, the processor 104,the memory 106, the camera controller 110, the optional display 114,and/or the optional I/O components 116 may be coupled to each other viaone or more local buses (not shown for simplicity).

The display 114 may be any suitable display or screen allowing for userinteraction and/or to present items (such as captured images, video, ora preview image) for viewing by a user. In some aspects, the display 114may be a touch-sensitive display. The I/O components 116 may be orinclude any suitable mechanism, interface, or device to receive input(such as commands) from the user and to provide output to the user. Forexample, the I/O components 116 may include (but are not limited to) agraphical user interface, keyboard, mouse, microphone and speakers, andso on. The display 114 and/or the I/O components 116 may provide apreview image to a user and/or receive a user input for adjusting one ormore settings of the camera 102 (such as selecting and/or deselecting aregion of interest of a displayed preview image for an AF operation).

The camera controller 110 may include an image signal processor 112,which may be one or more image signal processors to process capturedimage frames or video provided by the camera 102. In some exampleimplementations, the camera controller 110 (such as the image signalprocessor 112) may determine when to perform and perform AWB for imagescaptured by the camera 102. In some aspects, the image signal processor112 may execute instructions from a memory (such as instructions 108from the memory 106 or instructions stored in a separate memory coupledto the image signal processor 112) to process image frames or videocaptured by the camera 102. In other aspects, the image signal processor112 may include specific hardware to process image frames or videocaptured by the camera 102. The image signal processor 112 mayalternatively or additionally include a combination of specific hardwareand the ability to execute software instructions.

One or more different scene characteristics may be measured, identified,or estimated in determining when to perform AWB and/or when determiningbalancing factors. The different scene characteristics may correspond tothe scene lighting and may be called “illuminants.” Example illuminantsinclude, but are not limited to, RGB gains and gain changes in the RGBspace, chrominance changes in the YUV space, green-magenta shifts,correlated color temperatures (CCTs), and changes in exposure orluminance. One or more illuminants may be used for determining when toperform AWB or for correcting the color cast of an image.

FIG. 2 is an illustrative flow chart depicting an example operation 200for performing AWB. While the following examples are described regardingthe device 100, other devices or systems may be used, and the presentdisclosure should not be limited to the following examples. Beginning at202, the device 100 may receive a captured image. For example, thedevice 100 may use camera 102 to capture a raw image to be processed bythe image signal processor 112. The device 100 (such as the image signalprocessor 112) then may use the captured image to determine whether thescene has changed for the camera 102 (204).

In some example implementations of determining whether a scene haschanged (204), the device 100 may measure one or more illuminants of acaptured image from the camera 102 (206). The device 100 then maydetermine any changes in the measured illuminants from a previousmeasurement (208). In some example implementations, the device 100 maycompare measured illuminants across captured images to determine if thescene has changed so that AWB is to be performed. For example, aprevious measurement may be considered a first illuminant value, and ascene may be determined to be changed enough to perform AWB if thecurrent measurements deviate from the first illuminant value by athreshold (such as less than or greater than the first illuminant valueby an illuminant threshold). In some examples, if the difference betweenthe measured illuminant for the received image and the first illuminantvalue is less than the illuminant threshold, the device 100 determinesthat the scene has not changed between the received image and theprevious image. If the difference between the measured illuminant forthe received image and the first illuminant values is greater than theilluminant threshold, the device 100 determines that the scene haschanged between the received image and the previous image. If the scenehas not changed (210), the device 100 may receive another captured imageto continue determining whether the scene has changed (with the processreverting to 202). If the scene has changed (210), the device 100 mayperform AWB (212).

In some example implementations for performing AWB (212), the device 100may determine new balancing factors based on the measured illuminantsfor the received image (214). For example, the device 100 may convergefrom the current balancing factors for AWB to new balancing factorsbased on the comparison of the measured illuminants. The rate ofconvergence from the existing balancing factors to the new balancingfactors may be based on the comparison. For example, the device 100 maydetermine a rate of convergence for adjusting a first balancing factorbased on the comparison of illuminants. In some example implementations,the rate of convergence may be a factor applied to the current balancingfactor. For example, the new balancing factor may be within 5 percent ofthe previous balancing factor based on the comparison, and the rate ofconvergence may be a number between 95 percent and 105 percent tomultiply the current balancing factor to obtain the new balancingfactor.

In some example implementations, the device 100 may apply the newbalancing factor to the current and/or successive captured imagesreceived by the device 100 to adjust the color temperature of thecaptured images (216). For example, the balancing factor may be used tocorrect a color cast of an image. In some example implementations, thenew balancing factor may be for white balance operations for imagescaptured after the received image. In some other exampleimplementations, the new balancing factor may be for white balanceoperations for the received image.

While one balancing factor is described, multiple balancing factors mayexist. In some example implementations, a balancing factor may be afactor to be applied for each color represented for the image. Forexample, a balancing factor may exist for each of the colors red, blue,and green if the image is represented in the RGB color space. In someother example implementations, the balancing factor may be a vector withvalues for the different colors in the color space. Other suitablebalance factors may be used, and the present disclosure should not belimited to the provided examples.

In some aspects of the present disclosure, the device 100 may adjust therate of converging from existing balancing factors to new balancingfactors. The convergence rate may be based on determining that the scenechanges (such as between images), and is further described below, suchas regarding FIG. 5.

FIG. 3 is an illustrative flow chart depicting an example operation 300for detecting a scene change. Operation 300 is an example implementationof steps 204 and 206 in FIG. 2. Beginning at 302, the device 100 maymeasure one or more illuminants from a captured image. When measuringone or more illuminants, an instance of an illuminant may be affected bynoise or other ambient conditions. As a result, the measured illuminantmay be an outlier from previously measured illuminants. In some exampleimplementations, the device 100 may filter the measured illuminants toremove noise or artifacts caused by noise (304). Example filtersinclude, but are not limited to, a finite impulse response (FIR) filter,an infinite impulse response (IIR) filter, a median filter, an averagingfilter, or a combination of one or more filters.

In filtering the measured illuminants, the filters use previouslymeasured illuminants. In one example, an IIR filter uses previouslymeasured illuminants to determine a feedback to be applied in thefilter. In another example, a median filter and an averaging filter usethe current measured illuminant and an N number of previously measuredilluminants to determine, respectively, a median measured illuminant oran average illuminant. The device 100 may persist an N number ofpreviously measured illuminants (where N is a non-negative integer andmay be configurable, illuminant type dependent, and/or filterdependent). For example, the device 100 may include a buffer to store Nnumber of measurements. The buffer may be a first in first out (FIFO)buffer. For example, when a measurement is made by the device for acurrent image, the buffer stores the current measurement. If the bufferis full, the device 100 discards the oldest measurement in the buffer.The device 100 may reset the buffer when a new first illuminant value isdetermined for detecting a scene change, thus discarding any storedmeasurements.

In some example implementations, if the buffer is not full whendetermining a measured illuminant for the current captured image, thedevice 100 may determine not to filter the measured illuminant. Forexample, an IIR filter may require an N number of previous measurementsbefore providing feedback. As a result, the IIR filter may not beactivated until N number of measurements are performed or stored in thebuffer. If more than one type of illuminant is measured by the device100, the device 100 may filter any of the measured illuminants.Additionally, the same or different filters may be used for differenttypes of illuminants, and a filter may be tuned for a specific type ofilluminant.

The device 100 may compare the one or more illuminants to a firstilluminant value (306). If the device 100 measures only one type ofilluminant, the first illuminant value may include a reference value forthe one type of illuminant. If the device 100 measures multiple types ofilluminants, the first illuminant value may be a different referencevalue for each type of illuminant. In some example implementations, thereference value may be a previously measured illuminant (for a previousimage). In some other example implementations, the first illuminantvalue for an illuminant is the previous measurement of the illuminantfor when the device 100 converged to the current balancing factors. Forexample, the device 100 previously performed AWB (such as atinitialization or a previous scene change). In this manner, balancingfactors were determined, and the measured illuminant for the capturedimage when converging to the determined balancing factors is identifiedas the first illuminant value. In some example implementations, thedevice 100 identifies the measured illuminant as the first illuminantvalue only if the scene is no longer changing (is stable). For example,if the measured illuminants indicate that the scene is continuing tochange (such as the camera is in the process of moving from indoors tooutdoors), the first illuminant value may not be set until the measuredilluminants indicate that the scene has stopped changing (such as thecamera now being outdoors with no further lighting changes).

The difference between the one or more illuminants and the firstilluminant value may be considered a “residual.” A residual may includea set of values including a value for each of the types of illuminantsmeasured by the device 100. The device 100 may determine whether theresidual is greater than an overall threshold in determining whether thescene has changed (308). The device may determine if a residual isgreater than the overall threshold in any suitable manner. In someaspects, if multiple types of illuminants are measured, an overallthreshold may include different threshold values for each of theilluminant types. In this manner, the device may compare the residualvalue for a specific illuminant to a threshold value (of the overallthreshold) for the specific illuminant. Determining whether a scene haschanged between images based on a difference or magnitude of differencebetween illuminants may include any suitable determination andcomparison of the residual, and the present disclosure should not belimited to a specific number or type of thresholds in determiningwhether the scene has changed.

In one example, the device 100 may determine that the residual isgreater than an overall threshold if any of the residual values of theresidual is greater than the corresponding threshold value of theoverall threshold. In another example, the device 100 may determine thatthe residual is greater than the overall threshold only if all of theresidual values are greater than the corresponding threshold values. Ina further example, the device 100 may determine that the residual isgreater than the overall threshold if a predetermined number of residualvalues are greater than the respective threshold values. In still afurther example, the magnitude in difference between the thresholdvalues and the residual values may be used in determining whether theresidual is greater than the overall threshold. For example, a residualvalue greater than a corresponding threshold value by a smaller amountthan another residual value may be considered to determine a scenechange with less confidence than for the other residual value (since thedifference from the threshold value is smaller for the residual valuethan for the other residual value). The confidence therefore mayindicate if multiple types of residual values should be greater than thethreshold values, the number of residual values to be greater than thethreshold values, or other suitable means. The threshold values may beconfigurable, such as by a user, automatically updated by the device100, and/or configured by a device manufacturer or provider. Further,the threshold may include any number of threshold values, and theresidual may include any number of residual values, corresponding to thenumber of illuminants being measured (such as one or more valuescorresponding to one or more illuminants being measured).

If the residual is not greater than the threshold (308), the processends with the device 100 determining that the scene has not changed. Ifthe residual is greater than the threshold, the device 100 determinesthat the scene has changed (310). In some example implementations,detecting a scene change (such as example operation 300) may beperformed by a scene change detector module of the device 100 (notshown). For example, the module may be implemented by the image signalprocessor 112. The module may be software executable by the image signalprocessor 112, hardware, or a combination of both. After determiningthat the scene is changed, the device 100 may determine to converge tonew balancing factors for AWB.

In addition to detecting a scene change, the device 100 also maydetermine for how long the scene is detected to be changing (such as thenumber of image frames for which the scene is changing, an amount oftime the scene is changing, and so on). In some example implementations,determining when the scene settles and for how long the scene ischanging may be used by the device 100 to adjust converging to newbalancing factors (such as adjusting the rate of convergence).

FIG. 4 is an illustrative flow chart depicting an example operation 400for determining how long a scene is changing and when the scene isstable. How long a scene is changing may be measured in, e.g., number ofimage frames captured, an elapsed amount of time, or another suitablereference. Beginning at 402, the device 100 may detect or determine thata previously stable scene has changed. In some example implementations,the device 100 determines that the residual determined for the currentimage is greater than the illuminant threshold for determining whetherthe scene is stable or changing (404).

As a result of detecting a scene change (402), the device 100 maydetermine the beginning of when the scene is changing (406). In someexample implementations, if the device 100 counts the number of imageframes in determining the duration of the scene changing, the device 100may determine the beginning to be the current image for which a scenechange is first detected (408). In some other example implementations,if the device 100 measures the amount of time in determining theduration of the scene changing, the device 100 may determine thebeginning to be the time of capture for the current image for which ascene change is first detected (410). In some further exampleimplementations, the device 100 may begin a timer for when a scenechange is first detected in determining an amount of time the scene ischanging (not shown).

The device 100 then may determine if the scene is stable for the nextcaptured image (412). For example, the device 100 may determine whetherthe residual for the next image is within a range from the previousresidual (414). If the scene is not stable (416), the device 100 mayincrease a duration measurement of the scene changing (418). In someexample implementations, if the device 100 is counting the number ofconsecutive frames that the scene is changing, the device 100 mayincrement the count of images by one (420). In some other exampleimplementations, if the device 100 is determining a time that the sceneis changing, the device 100 may continue measuring the time that thescene is changing (422). In one example, the device 100 may continue atimer if a timer was started. In another example, the device 100 mayconsider the time when the image was captured as a time when the sceneis still changing. If the scene is stable (416), the process ends andthe device 100 may stop the duration measurement for the scene changing.In one example, a count of images may be stopped and indicate the numberof image captures for the scene changing. In another example, a timermay be stopped and indicate the amount of time for the scene changing.In a further example, the device 100 may determine the time when thescene is first determined to not be changing. The device 100 may thencompare the time when the scene is first determined to be changing tothe time when the scene is first determined to not be changing todetermine an amount of time for the scene changing. When the device 100is to perform a new duration measurement for the scene changing for newimage captures, the device 100, e.g., may reset the count of images forwhich the scene is changing, may reset a timer, or may discard the timedetermined to be the beginning of when the scene changed.

While step 414 illustrates determining a scene is stable based on oneresidual being within a range of the previous residual, in some otherexamples, a number of consecutive residuals may be compared to a rangebefore determining that the scene is stable. For example, the device 100may determine if an integer P number of consecutive residuals are withina pre-determined range of one another (where P may be configurableand/or pre-determined). If all (or greater than a pre-defined number) ofthe P consecutive residuals are not within the range, the device 100determines that the scene is not stable (is still changing). In thismanner, the device 100 may prevent an outlier residual from prematurelyending the measurement of when the scene is changing (thus determiningthat the scene is stable). Other suitable processes for determining ascene is stable may be used, and the present disclosure should not belimited to the provided examples.

The device 100 may prevent changing balancing factors or slow theconvergence from current to new balancing factors while the scenechanges. In some example implementations, the device 100 may beconfigured to prevent convergence or slow the convergence to differentbalancing factors for quick or temporary scene changes. For example,when the camera 102 passes a window, and the scene changes temporarilywhile passing the window, the device 100 may be configured to preventdetermining new balancing factors or slow converging to new balancingfactors. In some example implementations, the device 100 may compare theduration measurement (such as a number of frames or a length of time) toa duration threshold. For the scene changing for a duration less thanthe duration threshold, the device 100 may slow or stop the convergenceto new balancing factors. In this manner, if a changing scene becomesstable before the threshold duration, the balancing factors may not bechanged as much when the scene is determined to be changing as ifconventional AWB is performed. In some aspects of slowing theconvergence for balancing factors, the device 100 may decrease the rateof convergence used in converging the balancing factors.

Additionally or alternatively, if a changing scene becomes stable, thedevice 100 may speed up the convergence for balancing factors. Forexample, once the camera 102 has moved from indoors to outdoors, thescene may be determined stable such that the balancing factors to bedetermined will no longer be affected by a changing scene. As a result,the device 100 may increase or speed up the convergence to more quicklysettle white balance operations for successive images. The durationthreshold may be configurable and/or pre-determined. In some aspects ofspeeding up the convergence, the device 100 may increase the rate ofconvergence used in converging the balancing factors.

In converging from previous balancing factors to new balancing factors,the device 100 may use one or more previous images and the currentimage. For example, the device 100 may use the measured illuminants fromone or more previous images and the measured illuminants from thecurrent image in adjusting the previous balancing factors. The weight ofthe previous image(s)/illuminance measurements compared to the weight ofthe current image/illuminance measurements may be adjusted by the device100 in increasing (speeding up) or decreasing (slowing down or stopping)the convergence to new balancing factors. If the previousimage(s)/measurements are given more weight, the balancing factors areadjusted at a slower rate since the current image/measurements have lessimpact in determining the balancing factors. In this manner, the rate ofconvergence to new balancing factors may be decreased. If the previousimage(s)/measurements are given less weight, the balancing factors areadjusted at a faster rate since the current image/measurements have moreimpact in determining the balancing factors. In this manner, the rate ofconvergence to new balancing factors may be increased.

The weights for previous images/measurements compared to a currentimage/measurement in converging to new balancing factors may beconsidered a “convergence factor.” In some examples of rate ofconvergence, a convergence factor of 10% may indicate that the balancingfactors are impacted 90% by the previous image(s)/measurements and 10%by the current image(s)/measurements. In this manner, the previousbalancing factors may change no more than 10%, and the balancing factorsconverge to final values over a sequence of images. Other exampleconvergence factors include 1%, 2%, 5%, 20% or any other suitable value.

In some example implementations, the typical convergence factor is 5% or10%. Increasing the rate of convergence may include using a convergencefactor greater than 5% or 10%, respectively. Decreasing the rate ofconvergence may include using a convergence factor less than 5% or 10%,respectively. Example convergences factors are 1% or 2% for slowconvergence, 5% for typical convergence, and 10% for fast convergence.Other example convergence factors are 5% for slow convergence, 10% fortypical convergence, and 20% for fast convergence. In some otherexamples, slow convergence may have a convergence factor of 0 if thebalancing factors are not to be adjusted. The convergence factors may beadjustable or static. Additionally, the convergence factors may be setby a manufacturer or device distributor, set or adjusted by a user,automatically set or adjusted by the device 100 (such as based on scenetype (indoors, sports shot, landscape, nighttime, and so on) or otherfactors), or any combination of the above. The present disclosure shouldnot be limited to specific convergence factors are groups of convergencefactors for different rates of convergence. The convergence factors tobe used for converging to new balancing factors may be based on the rateof scene change and/or the duration of the scene changing. The rate ofscene change may be the rate of change of residuals for successive imageframes. The duration may be as described above regarding FIG. 4.

FIG. 5 is an illustrative flow chart depicting an example operation 500for selecting the convergence factor to be used in converging to newbalancing factors. In some example implementations, the convergencefactor may differ between: when the scene is still changing and when thescene becomes stable; when the duration of scene change is less than aduration threshold or greater than the duration threshold; and/or whenthe rate of scene change is low or not low (such as the rate being lessthan a rate threshold or the stable scene being similar to the scenebefore the scene change). While FIG. 5 is one example of selectingdifferent convergence factors, other means of selection may be used. Forexample, while FIG. 5 illustrates three different convergence factors(slow, typical, and fast, such as 1%, 5%, and 10% respectively, or 5%,10%, and 20% respectively), any number of convergence factors may beused for the selection. Further, any other suitable criteria forselecting a convergence factor may be used. The present disclosureshould not be limited to the provided example.

For the example operation 500, the scene may be initially changing, anda convergence factor may have previously been selected. For example,when a scene initially is determined to be changing, a slow convergencefactor may be selected since the duration of the scene change is lessthan the duration threshold and the scene change is occurring. Beginningat 502, the device 100 determines if the scene is stable. For example,the device 100 determines if a number of consecutive image residuals arewithin a pre-determined range. If the scene is stable, the device 100may select a fast convergence factor (504).

In some other example implementations after determining that the sceneis stable (502), the device 100 also may determine if the rate of thescene change (regarding the scene before a scene change and the sceneafter being stable or settling) is low (506). In one example, the device100 may determine that the rate of scene change is low if the scenebefore the scene change is similar to the current scene that is stable.For example, the device 100 may determine if the measured illuminantsfor the stable scene are similar to the first illuminant value or thepreviously measured illuminants before the scene change. As describedabove, the first illuminant value may be one or more measuredilluminants when the previous balancing factors were converged to by thedevice 100 performing AWB, the first illuminant value may be one or morepreviously measured illuminants for a previous image, or other suitablereference illuminant values for comparison. In another example, thedevice 100 may determine that the rate of scene change is low if therate of scene change is below a threshold.

In optionally determining that the rate of scene change is low (506),the device 100 selects the typical convergence factor (508) instead ofthe fast convergence factor (504). If the rate of scene change is notlow (506), the device 100 selects the fast convergence factor (504). Forexample, the device 100 may determine that the current stable scene isnot similar enough to the scene before the scene change (residual isgreater than a threshold) or that the rate of scene change is greaterthan a threshold in determining that the rate of scene change is notlow. Conversely, the device 100 may determine the residual is less thana threshold or that the rate of scene change is less than a threshold indetermining that the rate of scene change is low.

Referring back to 502, if the scene is stable, the device 100 maydetermine if the duration of scene change is less than a durationthreshold (510). If the duration that the scene has been changing isless than the duration threshold (510), the device 100 may select a slowconvergence factor (512). If the duration that the scene has beenchanging is greater than the duration threshold (510) (with the scenedetermined to be not yet stable in 502), the device 100 may select thetypical convergence factor (514). In this manner, for the first amountof time (corresponding to the duration threshold) that the scene ischanging (such as the camera 102 passing a window), the device 100 willslow convergence of the balancing factors related to the scene change.Thus, the device 100 may prevent large fluctuations in the balancingfactors (and therefore fluctuations in the colors of processed images)when the scene change is temporary.

Referring back to 512, after the slow convergence factor is selected,the device 100 determines if the duration threshold is reached beforethe scene is stable (516). When the duration threshold is reached beforethe scene is stable (516), the device 100 may select the typicalconvergence factor (514). When the scene is stable before the durationthreshold is reached (516), the device 100 may select the fastconvergence factor (504).

In some example implementations after determining that the durationthreshold is not reached (516), the device 100 optionally determines ifthe rate of scene change is low (518). Decision 518 may be similar todecision 506 described above. If the device 100 determines that the rateof scene change is low (518), the device 100 may select the typicalconvergence factor (514). If the device 100 determines that the rate ofscene change is not low (518), the device 100 may select the fastconvergence factor (504). After selecting the fast convergence factor(504), the device 100 may converge to the new balancing factors usingthe fast convergence factor (520). After converging to new balancingfactors (520), the device 100 may select the typical convergence factor(514). In this manner, the typical convergence factor is the currentconvergence factor for when the scene again changes.

Referring back to 516, if the duration threshold is reached before thescene is stable, the device 100 may select the typical convergencefactor (514) when the duration threshold is reached. When a convergencefactor is selected (such as 504, 508, 512, or 514), the device 100 maybegin or continue converging to new balancing factors using the selectedconvergence factor. For example, if the scene is initially changing andthe device 100 selects a slow convergence factor, the device 100 may usethe slow convergence factor to converge from a first balancing factor toa second balancing factor. If a new convergence factor isdetermined/selected for successive captured images, the device 100 thenmay converge from the second balancing factor to a third balancingfactor using the newly determined/selected convergence factor. If thedevice 100 has not completed converging to a final balancing factor whenselecting the typical convergence factor (514), the device 100 maycomplete convergence to the final balancing factor using the typicalconvergence factor. For example, the device 100 may determine that thescene is not changing between captured images and that the targetbalancing factor based on the measure illuminant for the last capturedimage differs from the current balancing factor. In this manner, thedevice 100 may continue to converge the current balancing factor usingthe convergence factor until the balancing factor reaches the determinedtarget balancing factor for the last captured image.

FIGS. 6-9 depict example scenarios of scene changes and when exampleslow, typical, or fast convergence of the balancing factor is performedusing example operation 500 in FIG. 5. While the examples describe threeconvergence factors, any number of convergence factors or other suitablerates of convergence may be used, and the present disclosure should notbe limited to the provided examples. FIG. 6 depicts an example scenechange 600 with a low rate of scene change (as compared to FIG. 8 andFIG. 9) and the scene becoming stable after the duration threshold. Asshown, the convergence rate 602 depends on whether the scene is stable(such as before 604 and after 606) and if the scene is changing for aduration longer than the duration threshold at 608. The location of theduration threshold at 608 is a time period 610 from 604, which may beconfigurable or static, and/or may be determined or adjusted by a user,a device manufacturer or provider, and/or the device 100.

Before the scene begins to change at 604, the typical convergence factoris selected, and a typical convergence rate occurs. However, if thedevice 100 has already converged to new balancing factors after the lastscene change, the device 100 may not perform any convergence since thepreviously determined balancing factors are used for AWB. When the scenebegins to change at 604 (such as the measured illuminants decreasing),and before the duration threshold at 608 is reached, a slow convergencerate may be used by the device 100 (such as the device 100 selecting aslow convergence factor). When the duration threshold 608 is reached andthe scene is not yet stable, the convergence rate may be increased to atypical convergence rate (such as by selecting the typical convergencerate as the convergence rate for new images). The convergence rate alsomay be typical when the scene again becomes stable (at 606). As shown,the change in scene may cause a gradual change from the measuredilluminants at 604 to the measured illuminants at 606. In anotherexample, the rate of scene changes may be low if the measuredilluminants at 606 are similar to the measured illuminants at 604 (suchas within a predetermined range).

FIG. 7 depicts an example scene change 700 with a low overall rate ofscene change (even though an instantaneous rate of scene change may behigh) and the scene becoming stable before the duration threshold. Whilethe measured illuminants may drastically change when the scene changebegins at 704, the rate of scene change may be low if the measuredilluminants before the scene change begins at 704 and after the scenechange ends at 706 are similar. As shown, the convergence rate 702depends on whether the scene is stable (such as before 704 and after706), and the scene becomes stable before the duration threshold 708.The convergence rate 702 is a typical convergence rate before the scenebegins to change (at 704) and after the scene again becomes stable (at706) when the scene after becoming stable at 706 is similar to the scenebefore the scene change at 704. For example, the measured illuminantsbefore and after the scene change are within a predefined distance orthreshold of one another. During the scene change (between 704 and 706),the convergence rate 702 may be a slow convergence rate since theduration threshold at 708 is not yet reached.

FIG. 8 depicts an example scene change 800 with a high rate of scenechange and the scene becoming stable before the duration threshold. Thisexample is the first example scene change in the present disclosuredepicting the convergence rate 802 being a fast convergence rate. Asshown, the convergence rate 802 depends on whether the scene is stable(such as before 804), when the scene becomes stable (at 806), and whenthe device 100 completes converging to final balancing factors using thehigh convergence rate (at 810). The convergence rate 802 is a typicalconvergence rate before the scene begins to change (at 804) and afterthe device completes converging to new balancing factors using the fastconvergence rate (at 810). During the scene change (between 804 and806), the convergence rate 802 may be a slow convergence rate since thescene is determined to be changing and the duration threshold at 808 isnot yet reached. The convergence rate 802 may be a fast convergence ratefrom when the scene becomes stable (at 806) to when the device 100completes converging to final balancing factors using the fastconvergence rate (at 810).

FIG. 9 depicts an example scene change 900 with a high rate of scenechange and the scene becoming stable after the duration threshold. Asshown, the convergence rate 902 depends on whether the scene is stable(such as before 904), when the scene becomes stable (at 906), when theduration threshold is reached (at 908), and when the device 100completes converging to final balancing factors using the highconvergence rate (at 910). The convergence rate 902 is a typicalconvergence rate before the scene begins to change (at 904) and afterthe device converges to final balancing factors using the fastconvergence rate (at 910). During the scene change before reaching theduration threshold (between 904 and 908), the convergence rate 902 maybe a slow convergence rate. When the duration threshold 908 is reachedand until the scene becomes stable (at 906), the convergence rate 902may be a typical convergence rate. The convergence rate 902 may be afast convergence rate from when the scene becomes stable (at 906) towhen the device 100 converges to final balancing factors using the fastconvergence rate (at 910). The convergence rate 902 then may again bethe typical convergence rate when the device 100 completes converging tothe new balancing factors (at 910).

The examples in FIGS. 6-9 are for illustrative purposes and should notbe used to limit the present disclosure. For example, the time domain(horizontal axis), measured illuminants (vertical axis), and/or theslope of the line or curve in FIGS. 6-9 may not be to scale and shouldnot be used to limit the present disclosure.

The determined balancing factors may be used by the device 100 for oneor more white balance operations for the current image or one or moresuccessive images until new balancing factors are determined by thedevice 100. For example, the device 100 may use the balancing factors tocorrect or adjust a color cast of an image. In some other exampleimplementations, the device 100 may update the balancing factors if thefactors become stale or have been used for a pre-determined amount oftime (to ensure that the factors are still correct or relevant).Additionally, the first illuminant value may be updated when the device100 converges to new balancing factors (such as at 810 and at 910 inFIG. 8 and FIG. 9, respectively). For example, the device 100 may storethe measured illuminants at 810 or at 910 as the new first illuminantvalue to be used in determining if a scene is beginning to change.Alternatively or additionally, the first illuminant value may be updatedwhen the scene stops changing (such as at 606, at 706, at 806, and at906 in FIGS. 6-9, respectively). For example, the device 100 may storethe measured illuminants at 606, at 706, at 806, or at 906 as the newfirst illuminant value to be used in determining if a scene is beginningto change. In another example, the first illuminant value may be ameasured illuminant for a previous image for comparison with thereceived captured image. In further example implementations, othersuitable means for updating the first illuminant value may be used, andthe present disclosure should not be limited to any specific example.

FIG. 10 is an illustrative flow chart depicting an example operation1000 for performing a white balance operation. Beginning at 1002, thedevice 100 may receive an image of the scene. For example, the device100 may receive the image from the camera 102. In another example, thedevice 100 may receive an image captured by a camera separate from thedevice 100. The device 100 then may measure at least one illuminant ofthe received image (1004). For example, the device 100 may determine anoverall luminance, a CCT, or other suitable illuminant for the receivedimage.

Proceeding to step 1006, the device 100 may compare the at least oneilluminant and a first illuminant value. The first illuminant value maybe determined as described above or through any suitable means. Forexample, the first illuminant value may be a previously measuredilluminant for a previous image (such as the image immediately precedingthe current image). In some example implementations, step 1006 may besimilar to step 306 in FIG. 3. For example, the device 100 may determineif the difference is greater than a threshold. In this manner, thedevice 100 may determine when the scene is changing for the receivedimage based on the comparison (1008).

Previous images may be associated with a previous convergence rate forconverging from one balancing factor to another balancing factor forwhite balance operations as a result of the scene change. For example, aprevious convergence rate may be a typical convergence rate as describedabove. In other examples, the previous convergence rate may be anysuitable convergence rate previously used by the device 100. In responseto determining the scene is changing for the received image, the device100 may adjust a first AWB convergence rate (currently set for thedevice 100) to a second AWB convergence rate for converging from a firstbalancing factor currently used by the device 100 to a second balancingfactor (1010). For example, the device 100 may determine for a durationbefore a duration threshold when the scene begins changing to reduce thefirst AWB convergence rate to a lower second AWB convergence rate. Forexample, the device 100 may decrease the convergence factor.

The device 100 may converge from the first balancing factor to thesecond balancing factor based on the second AWB convergence rate (1012).For example, the device 100 may use the second AWB convergence rate todetermine the second balancing factor between the first balancing factorand a final balancing factor to be determined when the scene is tobecome stable for new images. The device 100 then may perform one ormore white balance operations based on the second balancing factor (notshown). In one example, the device 100 may use the balancing factor toestimate one or more final colors of a captured image (such asdetermining the neutral colors of a portion of an image or whichportions of an image are to be a neutral color after processing). Inanother example, the device 100 may adjust a color cast of an image,such as the received image or successive received images. Alternatively,the device 100 may not perform white balance operations each time a newbalancing factor is determined. For example, AWB may be performed aninterval number of images, may be skipped for one or more images duringa scene change, or may be performed at another suitable time or period.

The techniques described herein may be implemented in hardware,software, firmware, or any combination thereof, unless specificallydescribed as being implemented in a specific manner. Any featuresdescribed as modules or components may also be implemented together inan integrated logic device or separately as discrete but interoperablelogic devices. If implemented in software, the techniques may berealized at least in part by a non-transitory processor-readable storagemedium (such as the memory 106 in the example device 100 of FIG. 1)comprising instructions 108 that, when executed by the processor 104 (orthe camera controller 110 or the image signal processor 112), cause thedevice 100 to perform one or more of the methods described above. Thenon-transitory processor-readable data storage medium may form part of acomputer program product, which may include packaging materials.

The non-transitory processor-readable storage medium may comprise randomaccess memory (RAM) such as synchronous dynamic random access memory(SDRAM), read only memory (ROM), non-volatile random access memory(NVRAM), electrically erasable programmable read-only memory (EEPROM),FLASH memory, other known storage media, and the like. The techniquesadditionally, or alternatively, may be realized at least in part by aprocessor-readable communication medium that carries or communicatescode in the form of instructions or data structures and that can beaccessed, read, and/or executed by a computer or other processor.

The various illustrative logical blocks, modules, circuits andinstructions described in connection with the embodiments disclosedherein may be executed by one or more processors, such as the processor104 or the image signal processor 112 in the example device 100 ofFIG. 1. Such processor(s) may include but are not limited to one or moredigital signal processors (DSPs), general purpose microprocessors,application specific integrated circuits (ASICs), application specificinstruction set processors (ASIPs), field programmable gate arrays(FPGAs), or other equivalent integrated or discrete logic circuitry. Theterm “processor,” as used herein may refer to any of the foregoingstructures or any other structure suitable for implementation of thetechniques described herein. In addition, in some aspects, thefunctionality described herein may be provided within dedicated softwaremodules or hardware modules configured as described herein. Also, thetechniques could be fully implemented in one or more circuits or logicelements. A general purpose processor may be a microprocessor, but inthe alternative, the processor may be any conventional processor,controller, microcontroller, or state machine. A processor may also beimplemented as a combination of computing devices, e.g., a combinationof a DSP and a microprocessor, a plurality of microprocessors, one ormore microprocessors in conjunction with a DSP core, or any other suchconfiguration.

While the present disclosure shows illustrative aspects, it should benoted that various changes and modifications could be made hereinwithout departing from the scope of the appended claims. Additionally,the functions, steps or actions of the method claims in accordance withaspects described herein need not be performed in any particular orderunless expressly stated otherwise. For example, the steps of thedescribed example operations, if performed by the device 100, the cameracontroller 110, the processor 104, and/or the image signal processor112, may be performed in any order and at any frequency. Furthermore,although elements may be described or claimed in the singular, theplural is contemplated unless limitation to the singular is explicitlystated. Accordingly, the disclosure is not limited to the illustratedexamples and any means for performing the functionality described hereinare included in aspects of the disclosure.

What is claimed is:
 1. A method for performing automatic white balance(AWB), comprising: receiving a first image of a scene; measuring a firstilluminant of the first received image; comparing the first illuminantand a first illuminant value; determining the scene is changing betweenthe first received image and a previous image based on the comparison;in response to determining the scene is changing, adjusting a first AWBconvergence rate to a second AWB convergence rate; converging, based onthe second AWB convergence rate, from a first balancing factor to asecond balancing factor for one or more white balance operations;receiving a second image of the scene; measuring a second illuminant ofthe second received image; comparing the second illuminant and the firstilluminant; determining the scene is not changing between the secondreceived image and the first received image based on the comparison ofthe second illuminant and the first illuminant; and determining thesecond balancing factor is a target balancing factor for successivelyreceived images of the scene based on determining the scene is notchanging between the second received image and the first received image.2. The method of claim 1, wherein: the first illuminant value is apreviously measured illuminant for the previous image; and determiningthe scene is changing between the first received image and the previousimage includes determining that a first difference between the firstilluminant and the previously measured illuminant is greater than anilluminant threshold.
 3. The method of claim 2, further comprisingperforming a white balance operation based on the second balancingfactor, wherein the white balance operation includes adjusting a colorcast of a received image based on the second balancing factor.
 4. Themethod of claim 2, further comprising: determining that a scene changeduration corresponding to the first received image is less than aduration threshold, wherein adjusting the first AWB convergence rateincludes decreasing the first AWB convergence rate to the second AWBconvergence rate based on the scene change duration being less than theduration threshold.
 5. The method of claim 4, further comprising:receiving a third image of the scene; measuring a third illuminant ofthe third received image; comparing the third illuminant and the firstilluminant; determining the scene is not changing between the thirdreceived image and the first received image based on the comparison ofthe third illuminant and the first illuminant; determining that a seconddifference between the third illuminant and the previously measuredilluminant is greater than a change threshold; adjusting the second AWBconvergence rate to a third AWB convergence rate greater than the firstAWB convergence rate and greater than the second AWB convergence rate inresponse to determining: the scene is not changing between the secondreceived image and the first received image; and the second differenceis greater than the change threshold; and converging, based on the thirdAWB convergence rate, from the second balancing factor to a thirdbalancing factor for one or more white balance operations.
 6. The methodof claim 4, further comprising: receiving a third image of the scene;measuring a third illuminant of the third received image; comparing thethird illuminant and the first illuminant; determining the scene ischanging between the third received image and the first received imagebased on the comparison of the third illuminant and the firstilluminant; determining that the scene change duration corresponding tothe third received image is greater than the duration threshold;adjusting the second AWB convergence rate to a third AWB convergencerate equal to the first AWB convergence rate and greater than the secondAWB convergence rate in response to determining: the scene is changingbetween the third received image and the first received image; and thescene change duration corresponding to the third received image isgreater than the duration threshold; and converging, based on the thirdAWB convergence rate, from the second balancing factor to a thirdbalancing factor for one or more white balance operations.
 7. The methodof claim 4, further comprising: receiving a third image of the scene;measuring a third illuminant of the third received image; comparing thethird illuminant and the first illuminant; determining the scene is notchanging between the third received image and the first received imagebased on the comparison of the third illuminant and the firstilluminant; determining that a second difference between the thirdilluminant and the previously measured illuminant is less than a changethreshold; adjusting the second AWB convergence rate to a third AWBconvergence rate greater than the first AWB convergence rate and greaterthan the second AWB convergence rate in response to determining: thescene is not changing between the third received image and the firstreceived image; and the second difference is less than the changethreshold; and converging, based on the third AWB convergence rate, fromthe second balancing factor to a third balancing factor for one or morewhite balance operations.
 8. A device configured to perform automaticwhite balance (AWB), comprising: a memory; and a processor coupled tothe memory and configured to: receive a first image of a scene; measurea first illuminant of the first received image; compare the firstilluminant and a first illuminant value; determine the scene is changingbetween the first received image and a previous image based on thecomparison; in response to determining the scene is changing, adjust afirst AWB convergence rate to a second AWB convergence rate; converge,based on the second AWB convergence rate, from a first balancing factorto a second balancing factor for one or more white balance operations;receive a second image of the scene; measure a second illuminant of thesecond received image; compare the second illuminant and the firstilluminant; determine the scene is not changing between the secondreceived image and the first received image based on the comparison ofthe second illuminant and the first illuminant; and determine the secondbalancing factor is a target balancing factor for successively receivedimages of the scene based on determining the scene is not changingbetween the second received image and the first received image.
 9. Thedevice of claim 8, wherein: the first illuminant value is a previouslymeasured illuminant for the previous image; and the processor, indetermining the scene is changing between the first received image andthe previous image, is configured to determine that a first differencebetween the first illuminant and a previously measured illuminant isgreater than an illuminant threshold.
 10. The device of claim 9, whereinthe processor is further configured to perform a white balance operationbased on the second balancing factor, wherein the white balanceoperation includes adjusting a color cast of a received image based onthe second balancing factor.
 11. The device of claim 9, wherein theprocessor is further configured to: determine that a scene changeduration corresponding to the first received image is less than aduration threshold, wherein adjusting the first AWB convergence rateincludes decreasing the first AWB convergence rate to the second AWBconvergence rate based on the scene change duration being less than theduration threshold.
 12. The device of claim 11, wherein the processor isfurther configured to: receive a third image of the scene; measure athird illuminant of the third received image; compare the thirdilluminant and the first illuminant; determine the scene is not changingbetween the third received image and the first received image based onthe comparison of the third illuminant and the first illuminant;determine that a second difference between the third illuminant and thepreviously measured illuminant is greater than a change threshold;adjust the second AWB convergence rate to a third AWB convergence rategreater than the first AWB convergence rate and greater than the secondAWB convergence rate in response to determining: the scene is notchanging between the third received image and the first received image;and the second difference is greater than the change threshold; andconverge, based on the third AWB convergence rate, from the secondbalancing factor to a third balancing factor for one or more whitebalance operations.
 13. The device of claim 11, wherein the processor isfurther configured to: receive a third image of the scene; measure athird illuminant of the second received image; compare the thirdilluminant and the first illuminant; determine the scene is changingbetween the third received image and the first received image based onthe comparison of the third illuminant and the first illuminant;determine that the scene change duration corresponding to the thirdreceived image is greater than the duration threshold; adjust the secondAWB convergence rate to a third AWB convergence rate equal to the firstAWB convergence rate and greater than the second AWB convergence rate inresponse to determining: the scene is changing between the thirdreceived image and the first received image; and the scene changeduration corresponding to the third received image is greater than theduration threshold; and converge, based on the third AWB convergencerate, from the second balancing factor to a third balancing factor forone or more white balance operations.
 14. The device of claim 11,wherein the processor is further configured to: receive a third image ofthe scene; measure a third illuminant of the third received image;compare the third illuminant and the first illuminant; determine thescene is not changing between the third received image and the firstreceived image based on the comparison of the third illuminant and thefirst illuminant; determine that a second difference between the thirdilluminant and the previously measured illuminant is less than a changethreshold; adjust the second AWB convergence rate to a third AWBconvergence rate greater than the first AWB convergence rate and greaterthan the second AWB convergence rate in response to determining: thescene is not changing between the third received image and the firstreceived image; and the second difference is less than the changethreshold; and converge, based on the third AWB convergence rate, fromthe second balancing factor to a third balancing factor for one or morewhite balance operations.
 15. A non-transitory computer-readable mediumstoring one or more programs containing instructions that, when executedby a processor of a device, cause the device to: receive a first imageof a scene; measure a first illuminant of the first received image;compare the first illuminant and a first illuminant value; determine thescene is changing between the first received image and a previous imagebased on the comparison; in response to determining the scene ischanging, adjust a first automatic white balance (AWB) convergence rateto a second AWB convergence rate; converge, based on the second AWBconvergence rate, from a first balancing factor to a second balancingfactor for one or more white balance operations; receive a second imageof the scene; measure a second illuminant of the second received image;compare the second illuminant and the first illuminant; determine thescene is not changing between the second received image and the firstreceived image based on the comparison of the second illuminant and thefirst illuminant; and determine the second balancing factor is a targetbalancing factor for successively received images of the scene based ondetermining the scene is not changing between the second received imageand the first received image.
 16. The computer-readable medium of claim15, wherein: the first illuminant value is a previously measuredilluminant for the previous image; and the instructions, for determiningthe scene is changing between the first received image and the previousimage, cause the device to determine that a first difference between thefirst illuminant and a previously measured illuminant is greater than anilluminant threshold.
 17. The computer-readable medium of claim 16,wherein the instructions further cause the device to perform a whitebalance operation based on the second balancing factor, wherein thewhite balance operation includes adjusting a color cast of a receivedimage based on the second balancing factor.
 18. The computer-readablemedium of claim 16, wherein the instructions further cause the deviceto: determine that a scene change duration corresponding to the firstreceived image is less than a duration threshold, wherein adjusting thefirst AWB convergence rate includes decreasing the first AWB convergencerate to the second AWB convergence rate based on the scene changeduration being less than the duration threshold.
 19. Thecomputer-readable medium of claim 18, wherein the instructions furthercause the device to: receive a third image of the scene; measure a thirdilluminant of the third received image; compare the third illuminant andthe first illuminant; determine the scene is not changing between thethird received image and the first received image based on thecomparison of the third illuminant and the first illuminant; determinethat a second difference between the third illuminant and the previouslymeasured illuminant is greater than a change threshold; adjust thesecond AWB convergence rate to a third AWB convergence rate greater thanthe first AWB convergence rate and greater than the second AWBconvergence rate in response to determining: the scene is not changingbetween the third received image and the first received image; and thesecond difference is greater than the change threshold; and converge,based on the third AWB convergence rate, from the second balancingfactor to a third balancing factor for one or more white balanceoperations.
 20. The computer-readable medium of claim 18, wherein theinstructions further cause the device to: receive a third image of thescene; measure a third illuminant of the third received image; comparethe third illuminant and the first illuminant; determine the scene ischanging between the third received image and the first received imagebased on the comparison of the third illuminant and the firstilluminant; determine that the scene change duration corresponding tothe third received image is greater than the duration threshold; adjustthe second AWB convergence rate to a third AWB convergence rate equal tothe first AWB convergence rate and greater than the second AWBconvergence rate in response to determining: the scene is changingbetween the third received image and the first received image; and thescene change duration corresponding to the third received image isgreater than the duration threshold; and converge, based on the thirdAWB convergence rate, from the second balancing factor to a thirdbalancing factor for one or more white balance operations.
 21. Thecomputer-readable medium of claim 18, wherein the instructions furthercause the device to: receive a third image of the scene; measure a thirdilluminant of the third received image; compare the third illuminant andthe first illuminant; determine the scene is not changing between thethird received image and the first received image based on thecomparison of the third illuminant and the first illuminant; determinethat a second difference between the third illuminant and the previouslymeasured illuminant is less than a change threshold; adjust the secondAWB convergence rate to a third AWB convergence rate greater than thefirst AWB convergence rate and greater than the second AWB convergencerate in response to determining: the scene is not changing between thethird received image and the first received image; and the seconddifference is less than the change threshold; and converge, based on thethird AWB convergence rate, from the second balancing factor to a thirdbalancing factor for one or more white balance operations.
 22. A deviceconfigured to perform automatic white balance (AWB), comprising: meansfor receiving a first image of a scene; means for measuring a firstilluminant of the first received image; means for comparing the firstilluminant and a first illuminant value; means for determining the sceneis changing between the first received image and a previous image basedon the comparison; means for adjusting, in response to determining thescene is changing, a first AWB convergence rate to a second AWBconvergence rate; means for converging, based on the second AWBconvergence rate, from a first balancing factor to a second balancingfactor for one or more white balance operations; means for receiving asecond image of the scene; means for measuring a second illuminant ofthe second received image; means for comparing the second illuminant andthe first illuminant; means for determining the scene is not changingbetween the second received image and the first received image based onthe comparison of the second illuminant and the first illuminant; andmeans for determining the second balancing factor is a target balancingfactor for successively received images of the scene based ondetermining the scene is not changing between the second received imageand the first received image.
 23. The device of claim 22, wherein: thefirst illuminant value is a previously measured illuminant for theprevious image; and the means for determining the scene is changingbetween the first received image and the previous image includes meansfor determining that a first difference between the first illuminant andthe previously measured illuminant is greater than an illuminantthreshold.
 24. The device of claim 23, further comprising means forperforming a white balance operation based on the second balancingfactor, wherein the white balance operation includes adjusting a colorcast of a received image based on the second balancing factor.
 25. Thedevice of claim 23, further comprising: means for determining that ascene change duration corresponding to the first received image is lessthan a duration threshold, wherein adjusting the first AWB convergencerate includes decreasing the first AWB convergence rate to the secondAWB convergence rate based on the scene change duration being less thanthe duration threshold.
 26. The device of claim 25, further comprising:means for receiving a third image of the scene; means for measuring athird illuminant of the third received image; means for comparing thethird illuminant and the first illuminant; means for determining thescene is not changing between the third received image and the firstreceived image based on the comparison of the third illuminant and thefirst illuminant; means for determining that a second difference betweenthe third illuminant and the previously measured illuminant is greaterthan a change threshold; means for adjusting the second AWB convergencerate to a third AWB convergence rate greater than the first AWBconvergence rate and greater than the second AWB convergence rate inresponse to determining: the scene is not changing between the thirdreceived image and the first received image; and the second differenceis greater than the change threshold; and means for converging, based onthe third AWB convergence rate, from the second balancing factor to athird balancing factor for one or more white balance operations.
 27. Thedevice of claim 25, further comprising: means for receiving a thirdimage of the scene; means for measuring a third illuminant of the thirdreceived image; means for comparing the third illuminant and the firstilluminant; means for determining the scene is changing between thethird received image and the first received image based on thecomparison of the third illuminant and the first illuminant; means fordetermining that the scene change duration corresponding to the thirdreceived image is greater than the duration threshold; means foradjusting the second AWB convergence rate to a third AWB convergencerate equal to the first AWB convergence rate and greater than the secondAWB convergence rate in response to determining: the scene is changingbetween the third received image and the first received image; and thescene change duration is greater than the duration threshold; and meansfor converging, based on the third AWB convergence rate, from the secondbalancing factor to a third balancing factor for one or more whitebalance operations.
 28. The device of claim 25, further comprising:means for receiving a third image of the scene; means for measuring athird illuminant of the third received image; means for comparing thethird illuminant and the first illuminant; means for determining thescene is not changing between the third received image and the firstreceived image based on the comparison of the third illuminant and thefirst illuminant; means for determining that a second difference betweenthe third illuminant and the previously measured illuminant is less thana change threshold; means for adjusting the second AWB convergence rateto a third AWB convergence rate greater than the first AWB convergencerate and greater than the second AWB convergence rate in response todetermining: the scene is not changing between the third received imageand the first received image; and the second difference is less than thechange threshold; and means for converging, based on the third AWBconvergence rate, from the second balancing factor to a third balancingfactor for one or more white balance operations.